package com.itheima.springboot_enble;

import com.itheima.config.EnableUser;
import com.itheima.config.UserConfig;
import com.itheima.domain.Role;
import com.itheima.domain.User;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import redis.clients.jedis.Jedis;

/**
 * @ComponentScan 扫描范围：当前引导类所在包及其子包
 *
 * com.itheima.springbootenable
 * com.itheima.config
 * //1.使用@ComponentScan扫描com.itheima.config包
 * //2.可以使用@Import注解，加载类。这些类都会被Spring创建，并放入IOC容器
 * //3.可以对Import注解进行封装。
 */


/**
 * Import4中用法：
 *  1. 导入Bean
 *  2. 导入配置类
 *  3. 导入ImportSelector的实现类。
 *  4. 导入ImportBeanDefinitionRegistrar实现类
 */


//@ComponentScan("com.itheima.config")
//@Import(UserConfig.class)
//@EnableUser



//@Import(User.class)
//@Import(UserConfig.class)
//@Import(MyImportSelector.class)
//@Import({MyImportBeanDefinitionRegistrar.class})

@SpringBootApplication
public class SpringbootEnbleApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(SpringbootEnbleApplication.class, args);

      /*  Object user = context.getBean("user");
        System.out.println(user);*/

      /*    User user = context.getBean(User.class);
        System.out.println(user);

        Role role = context.getBean(Role.class);
        System.out.println(role);
*/
      /*  Object user = context.getBean("user");
        System.out.println(user);*/
       /* Map<String, User> map = context.getBeansOfType(User.class);
        System.out.println(map);*/
//        MyImportSelector bean = context.getBean(MyImportSelector.class);
//        System.out.println(bean);

        Jedis jedis = context.getBean(Jedis.class);
        System.out.println(jedis);

        jedis.set("name","112");
        String name = jedis.get("name");
        System.out.println(name);
    }
       /* @Bean
        public Jedis jedis(){
        return new Jedis("localhost",6379);
        }*/
}
